package Runtime;

public class runtime {
    public static void main(String[] args) {
        //只能获取同一个虚拟机对象
        Runtime r1= Runtime.getRuntime();
        Runtime r2= Runtime.getRuntime();
        System.out.println("r1:  "+r1);
        System.out.println("r2:  "+r2);
        System.out.println("r1与r2是否相等："+(r1==r2));
        System.out.println("----------------------------------");

        //停止虚拟机
        /*r1.exit(0);
        System.out.println("这句话不执行");*/

        //获取CPU线程数
        int i = r1.availableProcessors();
        System.out.println("cpu线程数："+i);

        int i1 = Runtime.getRuntime().availableProcessors();
        System.out.println("cpu线程数："+i1);//与上面同效
        System.out.println("----------------------------------");

        //JVM(虚拟机)能从系统中获取总内存大小（单位byte）
        long l = r1.maxMemory();
        System.out.println("JVM(虚拟机)能从系统中获取总内存大小:"+l/1024/1024/1024+"GB");//除第一次转为单位KB，除第二次获得单位为兆（MB），除第三次获得单位为GB
        System.out.println("----------------------------------");

        //JVM已经从系统中获取总内存大小（单位byte）
        long l1 = r1.totalMemory();
        System.out.println("JVM(虚拟机)已经从系统中获取总内存大小:"+l1/1024/1024+"MB");
        System.out.println("----------------------------------");

//        JVM剩余内存大小（单位byte）
        long l2 = r1.freeMemory();
        System.out.println("JVM剩余内存大小"+l2/1024/1024+"MB");
        System.out.println("----------------------------------");
    }
}
